from 66 import (
    code_block_1,
    code_block_2,
    code_block_3,
    code_block_4,
    code_block_5,
    code_block_6,
    code_block_7,
    code_block_8,
    code_block_9,
    code_block_10
)

# 定义题库，每个问题都有一个唯一的ID，一个问题描述和一个执行函数
question_bank = [
    {
        "id": 1,
        "question": "输出9x9乘法口诀表。",
        "execute": code_block_1
    },
    {
        "id": 2,
        "question": "输入一个任意正整数，输出分解质因数。例如：输入90,打印出90=2*3*3*5。",
        "execute": code_block_2
    },
    {
        "id": 3,
        "question": "输入一个不多于6位的正整数，要求：一、求它是几位数，二、逆序打印出各位数字。",
        "execute": code_block_3
    },
    {
        "id": 4,
        "question": "求s=a+aa+aaa+aaaa+aa...a的值，其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加)，几个数相加有键盘控制。",
        "execute": code_block_4
    },
    {
        "id": 5,
        "question": "有一分数序列：2/1，3/2，5/3，8/5，13/8，21/13...求出这个数列的前N项之和，N由键盘输入。",
        "execute": code_block_5
    },
    {
        "id": 6,
        "question": "一个整数，它加上100后是一个完全平方数，再加上268又是一个完全平方数，请问该数是多少？",
        "execute": code_block_6
    },
    {
        "id": 7,
        "question": "有一对兔子，从出生后第3个月起每个月都生一对兔子，小兔子长到第三个月后每个月又生一对兔子，假如兔子都不死，问每个月的兔子总数为多少？",
        "execute": code_block_7
    },
    {
        "id": 8,
        "question": "任意输入一个3x3矩阵，求矩阵对角线元素之和。",
        "execute": code_block_8
    },
    {
        "id": 9,
        "question": "有n个整数，使其前面各数顺序向后移m个位置，最后m个数变成最前面的m个数。",
        "execute": code_block_9
    },
    {
        "id": 10,
        "question": "编写一个函数，输入n为偶数时，调用函数求1/2+1/4+...+1/n,当输入n为奇数时，调用函数1/1+1/3+...+1/n(利用指针函数)。",
        "execute": code_block_10
    }
]

# 添加新问题的函数
def add_question(question, execute_func):
    """添加新题目到题库"""
    new_id = len(question_bank) + 1
    question_bank.append({
        "id": new_id,
        "question": question,
        "execute": execute_func
    })

# 主函数，提供命令行界面
def main():
    while True:
        print("\nPlease select a question to execute:")
        for idx, q in enumerate(question_bank, start=1):
            print(f"{idx}. {q['question']}")

        try:
            choice = int(input("Enter your choice (id): "))
            if 1 <= choice <= len(question_bank):
                selected_question = question_bank[choice - 1]
                print(f"Executing: {selected_question['question']}")
                selected_question['execute']()  # 调用选中的问题的执行函数
            else:
                print("Invalid choice. Please try again.")
        except ValueError:
            print("Please enter a valid number.")

if __name__ == "__main__":
    main()